【任务队列】huey-理解
应用场景
参考:https://www.jianshu.com/p/dba08adc725d
一个计算任务往往需要一个开启一个进程,而每个进程可以配置多个线程来分配这些任务
假设我们可以分配到m个线程,但是有n个参数不同、计算相同的任务去分配到m个线程中,可能剩余a个线程
现在我要增加新的任务,只能要么等前面的任务计算完,或者起了新的进程,但是之前空余的线程将不能被有效利用
但任务队列实质就是实现了跨进程的队列。将任务交给huey,开启相应的worker(决定线程的数量)当新的任务进来调用时,可以有效地分配worker,而所有的函数调用都是异步执行的,效率更高~~
可以实现调用失败重试的操作,并实现延迟、定时任务的执行
任务序列、消息序列、RPC
消息序列(本地)
你去和服务员点餐,报出菜名,服务员返回能不能做
任务序列(本地+worker)
你去和服务员点餐,报出菜名,服务员安排给餐厅厨师,等待上菜
RPC(远程+server)
你去和服务员点餐,报出菜名,服务员会在线去问旗下的厨师,等待厨师反馈可以做后,由厨师左后交给服务员再上菜